Control unit

A control unit in general is a central (or sometimes distributed but clearly distinguishable) part of the machinery that controls its operation, provided that a piece of machinery is complex and organized enough to contain any such unit. One domain in which the term is specifically used is the area of computer design. In the automotive industry, the control unit helps maintain various functions of the motor vehicle.

The rest of this article describes control unit in terms of computer design. There is no further article on other uses under this lemma as yet. (Disambiguation and/or integration of this article in Computer with respective linkage—and retention/creation of a more broad-sense article—may be appropriate.)

Contents

Definition

The control unit coordinates the input and output devices of a computer system. It fetches the code of all of the instructions in the microprograms. It directs the operation of the other units by providing timing and control signals.

Application in Computer Design

In computers, the control unit was historically defined as one distinct part of the 1946 reference model of Von Neumann architecture. In modern computer designs, the control unit is typically an internal part of the CPU with its overall role and operation unchanged.

General operation

The outputs of the control unit control the activity of the rest of the device. A control unit can be thought of as a finite state machine.

The control unit is the circuitry that controls the flow of data through the processor, and coordinates the activities of the other units within it. In a way, it is the "brain within the brain", as it controls what happens inside the processor, which in turn controls the rest of the computer.

A few examples of devices that require a control unit are CPUs and GPUs. The modern information age would not be possible without complex control unit designs.

The control unit receives external instructions or commands which it converts into a sequence of control signals that the control unit applies to data path to implement a sequence of register-transfer level operations.

Hardwired Control

At one time, control units for CPUs were ad-hoc logic, and they were difficult to design. These can be identified as the main part of the computer and the main device that helps the computer to function in an appropriate manner. It is constructed of logic gates, flip-flops, encoder circuits, decoder circuits, digital counters and other digital circuits. Their control is based on fixed architecture i.e. it requires changes in the wiring if the instruction set is modified or changed. This architecture is preferred in reduced instruction set computers (RISC) as it consists of a lesser instruction set.

Hardwired control units are implemented through use of sequential logic units, featuring a finite number of gates that can act as a generator of specific results, based on the instructions that were used to invoke those responses. These instructions are apparent in the design of the architecture, but can also be represented in other ways.

Microprogram Control Unit

The idea of microprogramming was introduced by Maurice Wilkes in 1951 as an intermediate level to execute computer program instructions (see also: microcode). Microprograms were organized as a sequence of microinstructions and stored in special control memory. The algorithm for the microprogram control unit is usually specified by flowchart description.[1] The main advantage of the microprogram control unit is the simplicity of its structure. Outputs of the controller are organized in microinstructions and they can be easily replaced.[2]

Functions of the Control Unit

The functions performed by the control unit vary greatly by the internal architecture of the CPU, since the control unit really implements this architecture. On a complex instruction set computer (CISC) processor that executes x86 instructions natively the control unit performs the tasks of fetching, decoding, managing execution and then storing results. On a x86 processor with a RISC core, the control unit has significantly more work to do. It manages the translation of x86 instructions to RISC micro-instructions, manages scheduling the micro-instructions between the various execution units, and juggles the output from these units to make sure they end up where they are supposed to go. On one of these processors the control unit may be broken into other units (such as a scheduling unit to handle scheduling and a retirement unit to deal with results coming from the pipeline) due to the complexity of the job it must perform.

See also

Computer design

Automotive design

References

  1. ^ Barkalov, Alexander (2009). Logic synthesis for FSM based control units / Alexander Barkalov and Larysa Titarenko. Berlin: Springer. ISBN 978-3-642-04308-6. 
  2. ^ Wiśniewski, Remigiusz (2009). Synthesis of compositional microprogram control units for programmable devices. Zielona Góra: University of Zielona Góra. pp. 153. ISBN 978-83-7481-293-1.